Modulation codes are used in magnetic recording channels in order to limit recorded bit sequences to those that are most reliably detectable. In particular, run length limited (RLL) modulation codes have been used within partial response signaling, maximum likelihood detection (PRML) data recording and playback channels, decision feedback equalization (DFE) channels, and the like. Partial response systems of interest for magnetic data storage devices such as disk drives and magnetic tape include a PR4 (1-D.sup.2) channel and EPR4 (1+D-D.sup.2 -D.sup.3) channel as well as other nonclassical polynomials. The present invention can be used in any PR channel.
In general, magnetic recording systems employ Viterbi detectors to achieve maximum likelihood detection of user data as it is played back from the recording medium. A modulation code for a PRML data recording and playback channel is selected to balance code efficiency against timing/gain loop reliability and the Viterbi detector path memory, as well as error propagation during decoding.
Run length limited modulation codes are often described using the format "(rate) RLL (d,G/I)" where the "rate" is expressed as a ratio of the number of input bits to be encoded to the number of output bits in the resulting codeword. For example, a rate 8/9 modulation code converts an 8-bit input byte into a 9-bit codeword. Rate 8/9 encoding is well known in the art, as described, for example, in U.S. Pat. No. 4,707,681 and U.S. Pat. No. 5,260,703. Rate 8/9 encoding for PRML data channels also is described in U.S. Pat. No. 5,196,849. As the code rate approaches unity, the code is deemed to be more efficient, in that relatively fewer code characters are required to encode user data values. Thus, a rate 8/9 code is more efficient than a rate 2/3 code.
Similarly, a rate 16/17 code is more efficient than a rate 8/9 code. A rate 16/17 code (=0.941) achieves an approximately 6% increase in recording density over a standard rate 8/9 modulation code. One example of a rate 16/17 modulation code is described in commonly assigned U.S. Pat. No. 5,635,933 incorporated herein by this reference. Another rate 16/17 code is described in U.S. Pat. No. 5,784,010 assigned to IBM.
Early PRML read channels used the well-known rate 8/9 RLL (0,4/4) channel code. In accordance with prior art, this channel code is combined with a 1/(1+D.sup.2) modulo 2 precoder to obtain the {+1,-1}valued magnetic write-current pattern. On the decoder side, the signal is first equalized to the partial response target and then the +1/-1 write-current waveform is maximum-likelihood detected. The write current is then "unprecoded" (or postcoded) with a 1+D.sup.2 modulo 2 function. This "undoes" the preceding to regenerate a {0,1} valued sequence. The data is then RLL decoded for the user. Examples of RLL encoders and decoders are disclosed in the patents identified above.
The rate 8/9 code can be extended to a rate 16/17 code by either bit-wise or byte-wise interleaving unencoded bytes with the encoded sequence. While the G and I constraints will become considerably larger (G=12, I=8 for byte-wise interleaved case), the roughly 6% in increased code rate is often considered worthwhile. Still, the need remains for improvements in recording channel encoding efficiency in order to improve storage capacities in recording systems and lower costs. The codes in this patent application are (0,K) codes. The K constraint is equivalent to the G constraint. The 0 means that consecutive ones are allowed, i.e. there is no restriction on the mininmum run length of zeros.
Another limitation of prior art is that virtually all known channel coding schemes are based on 8-bit ECC symbols, as they are historically the de facto standard. We anticipate use of a 10-bit ECC symbol and thus new methods are required to achieve improved density and error propagation performance in the context of 10-bit ECC symbols.